const http = require('../../../utils/https.js');
Page({
    data: {
        // 当前激活 tab 的索引
        active: 0,

        cartData: [], // 购物车详细数据
        cartCount: 0, // 购物车商品数量（动态更新）
        cartIconSize: '50rpx', // 图标基础大小
        cartIconColor: '#333', // 图标基础颜色

        // 商品数据列表
        requestProduct: [],
        // 分类数据
        categories: [],
        // 加载状态
        loading: false
    },

    onLoad() {
        // 初始化：从本地缓存读取购物车数据
        this.initCartData();

        // 获取分类数据
        this.getCategories();
    },

    // 初始化购物车数据
    initCartData() {
        try {
            const cart = wx.getStorageSync('cart');
            if (Array.isArray(cart)) {
                this.setData({
                    cartData: cart,
                    cartCount: this.calculateCartCount(cart)
                });
            } else {
                this.setData({
                    cartData: [],
                    cartCount: 0
                });
                wx.setStorageSync('cart', []);
            }
        } catch (e) {
            console.error('读取购物车缓存失败:', e);
            this.setData({
                cartData: [],
                cartCount: 0
            });
        }
    },

    // 计算购物车商品总数
    calculateCartCount(cart) {
        return cart.reduce((total, item) => total + (item.count || 0), 0);
    },

    // 获取分类数据
    getCategories() {
        this.setData({
            loading: true
        });

        http.GET(
            '/product/productCategory/fatherList', {},
            (res) => {
                this.setData({
                    loading: false
                });

                if (res.code === 200 && Array.isArray(res.rows)) {
                    this.setData({
                        categories: res.rows
                    });

                    // 如果有分类数据，默认加载第一个分类的商品
                    if (res.rows.length > 0) {
                        this.getProductsByCategory(res.rows[0].id);
                    }
                } else {
                    wx.showToast({
                        title: '分类数据获取失败',
                        icon: 'none'
                    });
                    console.error('分类数据获取失败:', res);
                }
            },
            (err) => {
                this.setData({
                    loading: false
                });
                wx.showToast({
                    title: '网络请求失败',
                    icon: 'none'
                });
                console.error('分类请求错误:', err);
            }
        );
    },

    // 根据分类ID获取商品列表（修改为/activity/promotion/list接口）
    getProductsByCategory(categoryId) {
        this.setData({
            loading: true,
            requestProduct: [] // 清空当前商品列表，准备加载新数据
        });

        // 向/activity/promotion/list接口发送请求，传递分类ID参数
        http.GET(
            '/activity/promotion/list', {
                fatherCategoryId: categoryId
            }, // 传递分类ID参数用于筛选
            (res) => {
                this.setData({
                    loading: false
                });

                if (res.code === 200 && Array.isArray(res.rows)) {
                    // 处理商品数据，适配新接口返回格式
                    const products = res.rows.map(item => {
                        // 从product对象中获取商品基本信息
                        const product = item.product || {};

                        return {
                            id: product.id,
                            name: product.name || '',
                              productId: product.id,
                            desc: product.subtitle || product.description || '',
                            // 促销价使用value字段，原价使用product的price字段
                            price: item.value || 0,
                            originPrice: product.price || 0,
                            // 优先使用活动图片，没有则使用商品主图
                            image: item.image || product.mainImage || '',
                            categoryId: product.categoryId || 0,
                            activityId: item.id, // 保存活动ID
                            activityName: item.activityName || '' // 保存活动名称
                        };
                    });

                    this.setData({
                        requestProduct: products
                    });
                } else {
                    wx.showToast({
                        title: '活动商品数据获取失败',
                        icon: 'none'
                    });
                    console.error('活动商品数据获取失败:', res);
                }
            },
            (err) => {
                this.setData({
                    loading: false
                });
                wx.showToast({
                    title: '网络请求失败',
                    icon: 'none'
                });
                console.error('活动商品请求错误:', err);
            }
        );
    },

    // 切换分类标签
    onTabChange(e) {
        const index = e.detail.index;
        const categories = this.data.categories;

        if (categories.length > index) {
            const categoryId = categories[index].id;
            this.setData({
                active: index
            });
            // 根据分类ID加载对应商品
            this.getProductsByCategory(categoryId);
        }
    },

    // 跳转到商品详情
    goToDetail(e) {
        const productId = e.currentTarget.dataset.productId;
         console.log('productId:', productId); // 查看控制台输出
        if (productId) {
            wx.navigateTo({
                url: `/wqfSpecialOfferMarket/pages/wqfSpecialOfferGoodsDetails/wqfSpecialOfferGoodsDetails?productId=${productId}`
            });
        }
    },

    // 加入购物车事件
    addToCart(e) {
        const goods = e.currentTarget.dataset.item;
        if (!goods || !goods.id) return;

        // 深拷贝购物车数据
        const newCart = JSON.parse(JSON.stringify(this.data.cartData));
        const existingItemIndex = newCart.findIndex(item => item.id === goods.id);

        if (existingItemIndex > -1) {
            // 商品已存在，累加数量
            newCart[existingItemIndex].count = (newCart[existingItemIndex].count || 1) + 1;
        } else {
            // 新增商品
            newCart.push({
                ...goods,
                count: 1 // 初始数量为1
            });
        }

        // 更新本地缓存和页面数据
        try {
            wx.setStorageSync('cart', newCart);
            const totalCount = this.calculateCartCount(newCart);
            this.setData({
                cartData: newCart,
                cartCount: totalCount
            });

            // 显示添加成功提示
            wx.showToast({
                title: '已加入购物车',
                icon: 'success',
                duration: 1000
            });
        } catch (e) {
            console.error('更新购物车缓存失败:', e);
            wx.showToast({
                title: '添加失败，请重试',
                icon: 'none'
            });
        }
    },

    // 点击购物车跳转
    goToCart() {
        wx.navigateTo({
            url: '/pages/cart/index'
        });
    }
});